We need to have a function to count the changes (deletions, modifications and creations) of one kind of object (kind is an object attribute), between baselines. Do you knows a .dxl for that? |
Re: Module changes counter
Your 1st sentance doesn't match your 2nd sentance.
Skip skpRequirement = create() // KEY both 'int' AbsNo of Objects that have ever been a Requirement
// DATA: 'int' Number of History for such an Object
Baseline bline
int iAbs, NumHist
for bline in mod do{} // bline now points to the last baseline'
Module mBase = load(mod, bline)
// Was a Requirement:
for o in mBase do
{ if (o is a requirement) then {iAbs = o."Absolute Number"; put(skpRequirement, iAbs, 0)}
}
// Is a Requirement:
for o in mod do
{ if (o is a requirement) then {iAbs = o."Absolute Number"; put(skpRequirement, iAbs, 0)}
}
History hst
HistoryType ht
for hst in mod do
{ noError()
NameAttr = hst.attrName
// Object has had "Requirement" value changes:
if (NameAttr is Requirement) then { iAbs = hst.absNo; put(skpRequirement, iAbs, 0)
lastError() // prevents history access errors
}
// skpRequriement now has complete list if Requirements.
// Now count History for each such Object:
for hst in mod do
{ noError()
iAbs = hst.absNo
if (iAbsHist <= 0) then continue // History not for objects?
if (!find(skpRequirement, iAbs, NumChanges)) then continue // Don't care about this Object's History
NameAttr = hst.attrName
if (NameAttr is Requirement) then
{ delete(skpRequirement, iAbs) // Remove old count
put(skpRequirement, iAbs, NumChanges++) // Insert new count
}
lastError()
}
// Now report:
for NumHist in skpRequirement do
{ iAbs = (int key skpRequirement)
if (NumHist > 0) then print "Requirement #" iAbs "\tHas this many History since Baseline: " NumHist "\n"
}
|